﻿using System.Collections.ObjectModel;
namespace Renci.Data.Interop.OpenGIS.Gml
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.opengis.net/gml")]
    [System.Xml.Serialization.XmlRootAttribute("Curve", Namespace = "http://www.opengis.net/gml", IsNullable = false)]
    public class CurveType : AbstractCurveType
    {
        private Collection<AbstractCurveSegmentType> _segments = new Collection<AbstractCurveSegmentType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("LineStringSegment", Type = typeof(LineStringSegmentType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("Circle", Type = typeof(CircleType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("Arc", Type = typeof(ArcType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("ArcString", Type = typeof(ArcStringType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("ArcByBulge", Type = typeof(ArcByBulgeType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("ArcStringByBulge", Type = typeof(ArcStringByBulgeType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("CircleByCenterPoint", Type = typeof(CircleByCenterPointType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("ArcByCenterPoint", Type = typeof(ArcByCenterPointType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("OffsetCurve", Type = typeof(OffsetCurveType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("Clothoid", Type = typeof(ClothoidType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("Geodesic", Type = typeof(GeodesicType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("GeodesicString", Type = typeof(GeodesicStringType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("CubicSpline", Type = typeof(CubicSplineType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("Bezier", Type = typeof(BSplineType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("BSpline", Type = typeof(BezierType), IsNullable = false)]
        public Collection<AbstractCurveSegmentType> Segments 
        {
            get
            {
                return this._segments;
            }
        }
    }
}
